package com.brush.system.domain.req.syslogininfor;

import cn.hutool.core.util.StrUtil;
import com.brush.common.core.domain.page.PageAbstructReq;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;

import java.util.Date;


/**
 * ClassName: SysLoginInfor
 * Package: com.brush.system.domain.req.syslogininfor
 * Description:
 *
 * @Author luo
 * @Create 2024/8/23 15:53
 * @Version 1.0
 */
@Getter
@Setter
@ToString(callSuper = true)
@ApiModel(value = "SysLoginInforReq", description = "后台-登录日志")
public class SysLoginInforReq extends PageAbstructReq {

    /**
     * 访问编号
     */
    @ApiModelProperty(value = "访问编号")
    private String infoId;

    /**
     * 用户账号
     */
    @ApiModelProperty(value = "用户账号")
    private String userName;

    /**
     * 登录地址
     */
    @ApiModelProperty(value = "登录地址")
    private String ipaddr;

    /**
     * 登录地点
     */
    @ApiModelProperty(value = "登录地点")
    private String loginLocation;

    /**
     * 浏览器类型
     */
    @ApiModelProperty(value = "浏览器类型")
    private String browser;

    /**
     * 操作系统
     */
    @ApiModelProperty(value = "操作系统")
    private String os;

    /**
     * 登录状态（0成功 1失败）
     */
    @ApiModelProperty(value = "登录状态（0成功 1失败）")
    private String status;

    /**
     * 操作信息
     */
    @ApiModelProperty(value = "操作信息")
    private String msg;

    /**
     * 登录日期
     */
    @ApiModelProperty(value = "登录日期")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date loginTime;

    @ApiModelProperty(value = "开始时间")
    private Date beginTime;

    @ApiModelProperty(value = "结束时间")
    private Date endTime;

    /**
     * 排序
     */
    @ApiModelProperty(value = "排序")
    private String orderByColumn;

    /**
     * 排序的方向desc 或者 asc
     */
    @ApiModelProperty(value = "排序的方向desc 或者 asc")
    private String isAsc = "asc";

    /**
     * 排序
     *
     * @return
     */
    @Override
    public String getOrderBy() {

        if (StrUtil.isNotBlank(this.getOrderByColumn())) {
            return this.getOrderByColumn() + " " + this.getIsAsc();
        }
        return null;
    }


}
